package com.trkj.pojo;

import java.io.Serializable;
import javax.persistence.*;

import com.alibaba.fastjson.annotation.JSONField;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;


/**
 * The persistent class for the EXAM_ARRANGE database table.
 * 
 */
@Entity
@Table(name="EXAM_ARRANGE")
@NamedQuery(name="ExamArrange.findAll", query="SELECT e FROM ExamArrange e")
public class ExamArrange implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name="EXAM_ARRANGE_ARRANGEID_GENERATOR", sequenceName="HR")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="EXAM_ARRANGE_ARRANGEID_GENERATOR")
	@Column(name="ARRANGE_ID")
	private long arrangeId;

	@Column(name="ARRANG_PERSON")
	private String arrangPerson;

	@Column(name="ARRANG_QUALIFIED")
	private BigDecimal arrangQualified;

	@Column(name="ARRANGE_ADDRESS")
	private String arrangeAddress;

	@Column(name="ARRANGE_DATE")
	private Timestamp arrangeDate;

	@Column(name="ARRANGE_DURATION")
	private BigDecimal arrangeDuration;

	@Column(name="ARRANGE_LOOK_ANSWER")
	private String arrangeLookAnswer;

	@Column(name="ARRANGE_NAME")
	private String arrangeName;

	@Column(name="ARRANGE_NUMBER_ADMINISTRATOR")
	private BigDecimal arrangeNumberAdministrator;

	@Column(name="ARRANGE_NUMBER_EXAMINEE")
	private BigDecimal arrangeNumberExaminee;

	@Column(name="ARRANGE_REMARK")
	private String arrangeRemark;

	@Column(name="ARRANGE_START")
	private String arrangeStart;

	@Column(name="ARRANGE_UNIFY_ESPECIAL")
	private String arrangeUnifyEspecial;

	//bi-directional many-to-one association to AuxiliaryInformation
	@ManyToOne
	@JoinColumn(name="CODING_ID")
	private AuxiliaryInformation auxiliaryInformation;

	//bi-directional many-to-one association to Overview
	@ManyToOne
	@JoinColumn(name="OVERVIEW_ID")
	private Overview overview;

	//bi-directional many-to-one association to ExamGrade
	@OneToMany(mappedBy="examArrange")
	@JSONField(serialize=false)
	private List<ExamGrade> examGrades;

	//bi-directional many-to-many association to ExamPaper
	@ManyToMany(mappedBy="examArranges")
	@JSONField(serialize=false)
	private List<ExamPaper> examPapers;

	//bi-directional many-to-many association to StaffInformation
	@ManyToMany(mappedBy="examArranges")
	@JSONField(serialize=false)
	private List<StaffInformation> staffInformations;

	public ExamArrange() {
	}

	public long getArrangeId() {
		return this.arrangeId;
	}

	public void setArrangeId(long arrangeId) {
		this.arrangeId = arrangeId;
	}

	public String getArrangPerson() {
		return this.arrangPerson;
	}

	public void setArrangPerson(String arrangPerson) {
		this.arrangPerson = arrangPerson;
	}

	public BigDecimal getArrangQualified() {
		return this.arrangQualified;
	}

	public void setArrangQualified(BigDecimal arrangQualified) {
		this.arrangQualified = arrangQualified;
	}

	public String getArrangeAddress() {
		return this.arrangeAddress;
	}

	public void setArrangeAddress(String arrangeAddress) {
		this.arrangeAddress = arrangeAddress;
	}

	public Timestamp getArrangeDate() {
		return this.arrangeDate;
	}

	public void setArrangeDate(Timestamp arrangeDate) {
		this.arrangeDate = arrangeDate;
	}

	public BigDecimal getArrangeDuration() {
		return this.arrangeDuration;
	}

	public void setArrangeDuration(BigDecimal arrangeDuration) {
		this.arrangeDuration = arrangeDuration;
	}

	public String getArrangeLookAnswer() {
		return this.arrangeLookAnswer;
	}

	public void setArrangeLookAnswer(String arrangeLookAnswer) {
		this.arrangeLookAnswer = arrangeLookAnswer;
	}

	public String getArrangeName() {
		return this.arrangeName;
	}

	public void setArrangeName(String arrangeName) {
		this.arrangeName = arrangeName;
	}

	public BigDecimal getArrangeNumberAdministrator() {
		return this.arrangeNumberAdministrator;
	}

	public void setArrangeNumberAdministrator(BigDecimal arrangeNumberAdministrator) {
		this.arrangeNumberAdministrator = arrangeNumberAdministrator;
	}

	public BigDecimal getArrangeNumberExaminee() {
		return this.arrangeNumberExaminee;
	}

	public void setArrangeNumberExaminee(BigDecimal arrangeNumberExaminee) {
		this.arrangeNumberExaminee = arrangeNumberExaminee;
	}

	public String getArrangeRemark() {
		return this.arrangeRemark;
	}

	public void setArrangeRemark(String arrangeRemark) {
		this.arrangeRemark = arrangeRemark;
	}

	public String getArrangeStart() {
		return this.arrangeStart;
	}

	public void setArrangeStart(String arrangeStart) {
		this.arrangeStart = arrangeStart;
	}

	public String getArrangeUnifyEspecial() {
		return this.arrangeUnifyEspecial;
	}

	public void setArrangeUnifyEspecial(String arrangeUnifyEspecial) {
		this.arrangeUnifyEspecial = arrangeUnifyEspecial;
	}

	public AuxiliaryInformation getAuxiliaryInformation() {
		return this.auxiliaryInformation;
	}

	public void setAuxiliaryInformation(AuxiliaryInformation auxiliaryInformation) {
		this.auxiliaryInformation = auxiliaryInformation;
	}

	public Overview getOverview() {
		return this.overview;
	}

	public void setOverview(Overview overview) {
		this.overview = overview;
	}

	public List<ExamGrade> getExamGrades() {
		return this.examGrades;
	}

	public void setExamGrades(List<ExamGrade> examGrades) {
		this.examGrades = examGrades;
	}

	public ExamGrade addExamGrade(ExamGrade examGrade) {
		getExamGrades().add(examGrade);
		examGrade.setExamArrange(this);

		return examGrade;
	}

	public ExamGrade removeExamGrade(ExamGrade examGrade) {
		getExamGrades().remove(examGrade);
		examGrade.setExamArrange(null);

		return examGrade;
	}

	public List<ExamPaper> getExamPapers() {
		return this.examPapers;
	}

	public void setExamPapers(List<ExamPaper> examPapers) {
		this.examPapers = examPapers;
	}

	public List<StaffInformation> getStaffInformations() {
		return this.staffInformations;
	}

	public void setStaffInformations(List<StaffInformation> staffInformations) {
		this.staffInformations = staffInformations;
	}

}